package com.ap.core.message.service;


import com.ap.core.exception.BusinessFailureException;

/**
 * User: Ranjit.Singh
 * Generic interface to process all message types received by AP.
 * @param - REQ - Type of Request object received by AP.
 * @param - RES - Type of Response object returned by AP.
 * @param  - AI - Type of object to hold additional information.
 */
public interface MessageProcessor<REQ,RES,AI> {

    CoreResponseInfo<RES, AI> process(final REQ request, final RES response) throws BusinessFailureException;
}
